package com.hpeu_01.day0119;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * HashMap
 */
public class HashMapDemo {
    public static void main(String[] args) {
        //创建HashMap对象
        Map map = new HashMap();
        //Object put(Object key,Object value)：将指定key-value添加到(或修改)当 前map对象中
        //map集合是键值对（key-value）的方法来储存数据
        map.put(1,"张三");
        map.put(2,"李四");
        map.put(3,"王五");
        map.put(3,"李四");
        map.put(3,"赵六");
        map.put(3,"赵四");
        map.put(4,"李四");
        System.out.println(map.toString());
        //void putAll(Map m):将m中的所有key-value对存放到当前map中
        Map map1 = new HashMap();
        map1.put(5,"小明");
        map1.put(6,"小刚");
        map.putAll(map1);
        System.out.println(map.toString());
        //Object remove(Object key)：移除指定key的key-value对，并返回value
        map.remove(6);
        System.out.println(map.toString());
        //void clear()：清空当前map中的所有数据
        map1.clear();
        System.out.println(map1.toString());

        //Object get(Object key)：获取指定key对应的value
        System.out.println("key为1的值为："+map.get(1));
        //boolean containsKey(Object key)：是否包含指定的key
        System.out.println("集合中有key为6吗？"+map.containsKey(6));
        //boolean containsValue(Object value)：是否包含指定的value
        System.out.println("集合中是否有value为赵四："+map.containsValue("赵四"));
        //int size()：返回map中key-value对的个数
        System.out.println("集合中的键值对数为："+map.size());
        //boolean isEmpty()：判断当前map是否为空
        System.out.println("集合是否为空？："+map.isEmpty());
        //boolean equals(Object obj)：判断当前map和参数对象obj是否相等
        System.out.println(map.equals(map1));

        //遍历集合
        //Set keySet()：返回所有key构成的Set集合
        System.out.println("----------------------");
        Set set = map.keySet();
        for (Object o : set) {
            System.out.print(o+" ");
        }
        System.out.println();

        //Collection values()：返回所有value构成的Collection集合
        System.out.println("---------------------");
        Collection values = map.values();
        for (Object value : values) {
            System.out.print(value+" ");
        }
        System.out.println();

        //Set entrySet()：返回所有key-value对构成的Set集合
        System.out.println("--------------------");
        Set set1 = map.entrySet();
        for (Object o : set1) {
            Map.Entry entry =(Map.Entry) o;
            System.out.println(entry.getKey()+","+entry.getValue());
            System.out.println(o);
        }
    }
}

